namespace EFS.Common.Generators.Elements
{
	public class String : EFS.Common.Generators.Abstract.Element
	{
		// letters pool
		private EFS.Common.Generators.Characters.Pool lettersPool = new EFS.Common.Generators.Characters.Pool();

		/// Constructor
		public String(System.Boolean lowcase, System.Boolean upcase)
		{
			EFS.Common.Verify.Condition(upcase || lowcase, "upcase || lowcase");

			// add lowcase
			if (lowcase)
			{
				lettersPool.Add(new EFS.Common.Generators.Characters.Pools.Letters.LowCase());
			}

			// add upcase
			if (upcase)
			{
				lettersPool.Add(new EFS.Common.Generators.Characters.Pools.Letters.UpCase());
			}
		}

		/// Used pool
		public override EFS.Common.Generators.Abstract.Interfaces.Characters.IPool Pool
		{
			get { return lettersPool; }
		}
	}
}
